# -*- coding: utf-8 -*-
# Author : 李朋军
# Datetime : 2018-7-16

import unittest
from utils import HTMLTestRunnerCN
import os
import time

casepath = "TestCase\\"
result = "result\\"

def CreatSuite():
    #定义单元测试容器
    testunit = unittest.TestSuite()
    #定搜索用例文件的方法
    discover = unittest.defaultTestLoader.discover(casepath, pattern='test_*.py', top_level_dir=None)
    #将discover方法筛选出来的用例，循环添加到测试套件中,打印出的用例信息会递增
    for test_suite in discover:
        for casename in test_suite:
            testunit.addTest(casename)
        print(testunit)
    return testunit

test_case = CreatSuite()

#获取系统当前时间
now = time.strftime('%Y-%m-%d-%H_%M_%S', time.localtime(time.time()))
day = time.strftime('%Y-%m-%d', time.localtime(time.time()))

#定义报告存放路径
tdresult = result + day
if os.path.exists(tdresult):
    filename = tdresult + "\\" + now + "_result.html"
    fp = file(filename, 'wb')
    # 定义测试报告
    runner = HTMLTestRunnerCN.HTMLTestReportCN(stream=fp, title=u'伯通UI自动化测试报告', description=u'用例执行情况：', tester="软件测试组")

    #运行测试用例
    runner.run(test_case)
    fp.close()  #关闭报告文件
else:
    os.mkdir(tdresult)
    filename = tdresult + "\\" + now + "_result.html"
    fp = file(filename, 'wb')
    #定义测试报告
    runner = HTMLTestRunnerCN.HTMLTestReportCN(stream=fp, title=u'伯通UI自动化测试报告', description=u'用例执行情况：', tester="软件测试组")

    #运行测试用例
    runner.run(test_case)
    fp.close()  #关闭报告文件